package com.atguigu.common.result;

import java.util.HashMap;
import java.util.Map;
import lombok.Data;

/**
 * @author lupengning
 * @version 1.0
 * @date 2021/5/28 1:49
 */
@Data
public class R {

  private Integer code;

  private  String message;

  private Map<String, Object> data = new HashMap<>();

  private R() {}

  /**
   * 返回成功结果
   * @return
   */
  public static R ok() {
    R r = new R();
    r.setCode(ResponseEnum.SUCCESS.getCode());
    r.setMessage(ResponseEnum.SUCCESS.getMessage());
    return r;
  }

  /**
   * 返回失败结果
   * @return
   */
  public static R error() {
    R r = new R();
    r.setCode(ResponseEnum.ERROR.getCode());
    r.setMessage(ResponseEnum.ERROR.getMessage());
    return r;
  }

  /**
   * 返回自定义的结果
   * @param responseEnum
   * @return
   */
  public static R setResult(ResponseEnum responseEnum) {
    R r = new R();
    r.setCode(responseEnum.getCode());
    r.setMessage(responseEnum.getMessage());
    return r;
  }

  /**
   * 返回数据
   * @param key
   * @param value
   * @return
   */
  public R data(String key, Object value) {
    this.data.put(key, value);
    return this;
  }
  public R data(Map<String,Object> map) {
    this.setData(map);
    return this;
  }

  /**
   * 返回特定的响应消息
   * @param message
   * @return
   */
  public R message(String message) {
    this.setMessage(message);
    return this;
  }

  /**
   * 返回特点的响应码
   * @param code
   * @return
   */
  public R code(Integer code) {
    this.setCode(code);
    return this;
  }
}
